package com.example.lanqiaodemo.controller;
import com.example.lanqiaodemo.doumain.UserInfo;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import java.io.File;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.HashMap;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.io.IOException;

/*
用户接口类
 */
@Controller
public class UserinfoController {
    // 处理登录
    @GetMapping("/login")
    @ResponseBody
    public  Object login(@RequestParam("username")  String username ,
                         @RequestParam(value = "password",required = false,defaultValue = "123456") String password){
        HashMap map = new HashMap();
        if ("admin".equals(username) && "123456".equals(password)){
            map.put("message","登录成功");
        }else {
            map.put("message","用户名或密码错误");
        }
        return map;
    }
    // 注册登录
    @PostMapping("/reqister")
    @ResponseBody //表示该方法的返回的结果直接写入 HTTP 响应正文中,用于将数据发送给客户端,这个注解表示该方法的返回值会被序列化成JSON格式，并作为HTTP响应的正文发送回客户端。
    // 它主要用于将 HTTP 请求体中的内容绑定到方法的参数上，常用于处理 POST 请求，用于接收客户端发送的数据,将客户端发送过来的 JSON 格式的数据转换为 Java 对象。
    public Object reqister(@RequestBody UserInfo userInfo){
        HashMap hashMap = new HashMap<>();
        hashMap.put("message",userInfo);
        return hashMap;
    }
    // 查询
    @GetMapping("/goods/{id}")
    @ResponseBody
    public Object query(@PathVariable("id") String id){
        System.out.println("前端传过来的编号是" + id);
        // TODO 查询数据库
        ArrayList list = new ArrayList<>();
        list.add("木瓜多多");
        list.add("木瓜多多");
        list.add("木瓜多多");
        list.add("木瓜多多");

        return list;
    }


    // 遍历D盘下所有的文件名字
    @GetMapping("/list")
    @ResponseBody
    public Object listFail(){
        File file = new File("D:\\");
        String [] fileName = file.list();
        return  fileName;
    }



    // 编写一个接口实现读取一个文本文件
    @GetMapping("/readFile")
    @ResponseBody
    public Object readFile(@RequestParam("filename")  String filename) {
        if ("测试.txt".equals(filename) ){
            try {
                ArrayList list = new ArrayList<>();
                Path filePath = Paths.get("D:\\app study\\测试.txt");
                byte[] fileContent = Files.readAllBytes(filePath);
                list.add(new String(fileContent , StandardCharsets.UTF_8));
                return list;
            } catch (IOException e) {
                e.printStackTrace();
                return "Error reading the file: " + e.getMessage();
            }
        }else {
           return  "未找到改文件！！！";
        }

    }

}
